package com.cykj.pos.service;

import com.alibaba.fastjson.JSONObject;
import com.cykj.common.core.domain.AjaxResult;
import com.cykj.pos.domain.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cykj.system.domain.WalletNew;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * bizWalletNewService接口
 *
 * @author weijianbo
 * @date 2025-01-20
 */
public interface IBizWalletNewService extends IService<BizWalletNew> {

    /**
     * 查询列表
     */
    List<BizWalletNew> queryList(BizWalletNew bizWalletNew);

    JSONObject walletBalance(BizWalletNew bizWalletNew);

    AjaxResult withdrawalMoney(BizWalletNew bizWalletNew);

    BizWalletNew getWalletNewByUserId(Long userId,Long channelId);

    AjaxResult withdrawalTemplateSaveOrUpdate(WithdrawalRateTemplate withdrawalRateTemplate);

    AjaxResult withdrawalTemplateShowBack(WithdrawalRateTemplate withdrawalRateTemplate);

    AizWithdrawalWallet getWithdrawalWalletByUserId(Long userId,Long channelId);

    void updateAizWithdrawalWalletByUserId(AizWithdrawalWallet aizWithdrawalWallet);

    void insertWithdrawalWallet(AizWithdrawalWallet aizWithdrawalWallet);

    void insertDeductionWallet(AizDeductionWallet aizDeductionWallet);

    AjaxResult withdrawalAizWithdrawalMoney(AizWithdrawalWallet aizWithdrawalMoney);

    void updateWalletUserNameByUserId(Long userId, String nickName);

    void updateWithdrawalWallet(AizWithdrawalWallet aizWithdrawalWallet);

    AjaxResult totalWalletBalance(BizWalletNew bizWalletNew);

    BizWalletNew getWalletNewByUserIdAndChannel(Long userId, Long channelId);

    AizWithdrawalWallet getWithdrawalWalletByUserIdAndChannelId(Long userId, Long channelId);

    void testShareWithdrawal(BizWithdrawalRecords bizWithdrawalRecords);
}
